# 查找所有源文件
SRCS += $(shell find app -type f -name "*.c")
SRCS += $(shell find deamon -type f -name "*.c")
SRCS += $(shell find ota -type f -name "*.c")
SRCS += $(shell find thirdparty -type f -name "*.c")

CC := $(CROSS_COMPLIE)gcc
# 生成目标文件列表
OBJS = $(SRCS:.c=.o)
TARGET = gateway

# 编译器标志
CFLAGS += -Wall -Wextra
CFLAGS += -I/home/guaner/gateway  # 确保这是正确的头文件路径
LDFLAGS += -lpaho-mqtt3c

# 指定编译根目录
ifdef CROSS_COMPLIE
	CFLAGS += --sysroot=/home/guaner/sysroot
endif

# 主目标
.PHONY: all clean test_buffer
all: $(TARGET)

# 主程序链接规则
$(TARGET): $(OBJS) main.o
	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)

# main.o 的生成规则（如果main.c存在）

# cross:
# 	CROSS_COMPLIE=/home/guaner/linuxpi/toolchain/bin/arm-linux-gnueabihf- make

main.o: main.c
	$(CC) $(CFLAGS) -c $< -o $@ $(LDFLAGS)
	

# 测试程序
test_buffer: $(OBJS) test/test_buffer.o
	-@$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
	-@./$@
	-@$(RM) $@ $^

# 测试程序
test_mqtt: $(OBJS) test/test_mqtt.o
	-@$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
	-@./$@
	-@$(RM) $@ $^


test_message: $(OBJS) test/test_message.o
	-@$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
	-@./$@
	-@$(RM) $@ $^

test_task: $(OBJS) test/test_task.o
	-@$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
	-@./$@
	-@$(RM) $@ $^
# 清理规则
clean:
	$(RM) $(OBJS) $(TARGET) main.o test/test_buffer.o test_buffer  test_mqtt test/test_task.o

# 声明伪目标
.PHONY: all clean test_buffer